package ufpr.ees.suhck.dao.usuario;

import java.util.List;
import org.hibernate.Query;
import ufpr.ees.suhck.dao.GenericDaoImpl;
import ufpr.ees.suhck.db.HibernateUtil;
import ufpr.ees.suhck.model.Atendente;

public class AtendenteDaoImpl extends GenericDaoImpl<Atendente, Long> implements AtendenteDao {

    @Override
    public Atendente findPorEmail(String email) {
        sf = HibernateUtil.getSessionFactory().openSession();
        Query query = sf.getNamedQuery(Atendente.FIND_POR_EMAIL);
        query.setParameter("email", email);
        List<Atendente> atendentes = query.list();
        sf.close();
        if (atendentes.size() > 0) {
            return atendentes.get(0);
        }
        return null;
    }

    @Override
    public List<Atendente> findPorNome(String nome) {
        sf = HibernateUtil.getSessionFactory().openSession();
        Query query = sf.getNamedQuery(Atendente.FIND_POR_NOME);
        query.setParameter("nome", "%" + nome + "%");
        List<Atendente> atendentes = query.list();   
        sf.close();
        return atendentes;
    }

    @Override
    public List<Atendente> findPorCpf(String cpf) {
        sf = HibernateUtil.getSessionFactory().openSession();
        Query query = sf.getNamedQuery(Atendente.FIND_POR_CPF);
        query.setParameter("cpf", "%" + cpf + "%");
        List<Atendente> atendentes = query.list();
        sf.close();        
        return atendentes;
    }

}
